#! /bin/bash
> ../dados/grafo2_aleatorio.net

#matriz de autorIDs
relacao=

while read autor
do

        degree=$(grep -iw  "${autor}" ../dados/coautores | tr -s " " | tr "&" "\n"  | sed "s/^ //g" | sed "s/ $//g"  | sort | uniq -i | wc -l)

	#Remove o proprio vertice da contagem 
        degree=$((degree -1 ))
	#Encontra o autorID 
	autorID=$(grep -iw -m 1 "[0-9]* $autor" ../dados/dicionario | cut -d " " -f1)
	
	
	#Guarda a informacao vertice-degree
	relacao[${autorID}]=$degree
#	echo ${relacao[${autorID}]}

done < ../dados/autores



#echo "ve se tem problema: ${relacao[2299]} "
nAutores=$(cat ../dados/autores | wc -l )
vez=$nAutores
calculados=0

#gera o grafo aletorio semelhante
while [ $vez -gt 0 ]
do
#	echo ${relacao[${vez}]} 

	vetor_aleatorios=
	verifica=0
	while [  ${relacao[${vez}]} -gt 0 ]
	do
		#gera uma relacao aleatoria
		relacao_aleatoria=$(echo " $RANDOM  % ($nAutores - $calculados) + 1" | bc)

		
		for conteudo in $vetor_aleatorios
		do
			if [ $conteudo -eq $relacao_aleatoria ]
			then	
				verifica=1;
			fi
		done
			
		
#		echo "$vez $relacao_aleatoria" 
#		relacao[${vez}]=$(( relacao[vez] -1  ))
	

		if [ $verifica -ne 1 ]
		then 
#	 		#testa se ha vaga no sortiado
			echo "ve se tem problema: $relacao_aleatoria vez---> $vez    degredo vez: ${relacao[${vez}]}"
	#		echo "ve se tem problema: ${relacao[${relacao_aleatoria}]} "
			if [ -n ${relacao[${relacao_aleatoria}]} ] &&  [ ${relacao[${relacao_aleatoria}]} -gt 0  ]
			then
				#decrementa o degree (afim de tratar-lo como contador de relacoes
				relacao[$relacao_aleatoria]=$(( relacao[relacao_aleatoria] -1  ))
				relacao[$vez]=$(( relacao[vez] - 1  ))
	#			echo "conteudo = ${relacao[$vez]}"
	#			echo "${relacao[vez]} ${relacao[relacao_aleatoria]}"
		
				#gera o grafo2_aleatorio.net
				echo "$vez $relacao_aleatoria" >> ../dados/grafo2_aleatorio.net	
				echo "$relacao_aleatoria $vez" >> ../dados/grafo2_aleatorio.net	
	
	
			fi

			vetor_aleatorios="$vetor_aleatorios $relacao_aleatoria"
	         fi
		verifica=0
	done
	vez=$((vez - 1))
	calculados=$((calculados + 1))
done

#informa o maior componente conectado
echo "Maior componente conectado deste grafo aleatorio: $(cat ../dados/componentes_aleatorio.clu | sed "1d"  | sort -n | uniq -c | tr -s " " |  cut -d " " -f 2 | sort -n | uniq -c  | awk '{print $2 " " $1}' | cut -d " " -f1 | sort -nr | head -n 1)"

